#ifndef __link
#define __link 
struct tag_link_header {
	int magic;
	int g, u, i, d;
	int flags;
	int attributes;
	int creation_time[2];
	int modification_time[2];
	int last_access_time[2];
	int file_length;
	int icon_number;
	int show_win_value;
	int hot_key;
	int zero[2];
};

struct tag_file_location_info {
	int length;
	int offset; //mostly it is 1c
	int flags;
	//all the ints below are offsets
	int local_volume_info; 
	int base_path_name;
	int network_volume_info;
	int remaining_path_name;
};

struct tag_local_volume_table {
	int length;
	int type;
	int serial_number;
	int volume_name; //offset to the volume name - should be 10h
	//next is a ASCIZ volume lable which is a part of this structure
}; 

struct tag_network_volume_table {
	int length;
	int unknown; //the document doesn't know it yet
	int share_name;
	int unknown1;
	int unknown2;
	//next is ASCIZ network share name
};

struct tag_link {
	int shell_id, file_dir, directory, desc, rel_path, work_dir, cmd_line, icon, local, network;
	int icon_number;
	int type_volume;
	char base_path[255];
	char share_name[255];
	char final_path[255];
	wchar_t *desc_str, *path, *dir, *cmd, *icon_str;
};
#endif
